package array
{
	import flash.utils.ByteArray;
	
	import data.Multiname;
	
	import util.BytesUtil;

	public dynamic class MultinameArray extends Array
	{
		public function MultinameArray(...parameters)
		{
			super(parameters);
		}
		
		/**
		 * multiname_info 
		 * { 
		 * 		u8   kind 
		 * 		u8   data[] 
		 * }
		 * 
		 * kind表明了当前Multiname的类型，data中保存了相关multiname的具体内容。
		 * */
		public function fill(bytes:ByteArray, strArr:StringArray, nsArr:NsArray, nssetArr:NsSetArray):void
		{
			var count:uint = BytesUtil.readU30(bytes);
			this[0] = new Multiname(strArr, nsArr, nssetArr);
			if(count > 0){
				for(var i:int = 1; i < count; i++){
					this[i] = new Multiname(strArr, nsArr, nssetArr);
					(this[i] as Multiname).fill(bytes.readUnsignedByte(), bytes);
				}
			}
		}
	}
}